/* 
  1.上滑  滚动条触底 加载下一页
    1.先找到滚动条触底事件 微信小程序的官方文档
    2.加载下一页  （判断有没有下一页）
      1.获取页面总页数  数据只有总条数
          总页数 = Math.ceil(总条数 / 页容量pagesize)
      2.获取当前页码 pagenum
      3.判断当前是否大于等于总页数
      4.true 没有了 false 还有
    3.假如没有 弹出对话框提示到底
    4.假如有 正常加载下一页数据
      1.当前的页码++
      2.重新发送请求
      3.对data中的数组进行拼接 不能全部替换
  2.下拉刷新页面
    1.触发下拉刷新事件  需要在json文件中开启一个配置项
    2.重置数据数组
    3.重置页码为1
    4.重新发送请求
    5.数据请求回来 需要手动的关闭等待效果
*/

import {request} from "../../request/request.js";
import regeneratorRuntime from "../../lib/runtime/runtime.js";
Page({

  /**
   * 页面的初始数据
   */
  data: {
    tabs:[
      {
        id:0,
        value:"综合",
        isActive:true
      }, {
        id:1,
        value:"销量",
        isActive:false
      }, {
        id:2,
        value:"价格",
        isActive:false
      }
    ],
    goodsList:[]
  },
  // 接口要的参数
  QueryParams: {
    query:"",
    cid:"",
    pagenum: 1,
    pagesize: 10
  },
  //总页数改成全局变量
  totalPages: 1,
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // console.log(options)
    this.QueryParams.cid = options.cid||"";
    this.QueryParams.query = options.query||"";
    this.getGoodsList();

  },

  // 获取商品列表的数据
  async getGoodsList () {
    const res = await request({url:"/goods/search",data:this.QueryParams});
    // 获取总条数
    const total = res.total;
    //计算总页数
    this.totalPages = Math.ceil(total / this.QueryParams.pagesize);
    // console.log(this.totalPages);
    
    this.setData({
      //拼接数组
      goodsList:[...this.data.goodsList,...res.goods]
    })

    //关闭下拉刷新窗口
    wx.stopPullDownRefresh();

  },

  /* 从子组件传递过来的标题点击事件 */
  handleTabsItemChange(e) {
    //1.获取被点击的标题索引
    const {index} = e.detail;
    //2.修改原数组
    let {tabs} = this.data;
    tabs.forEach((v,i)=>i===index?v.isActive=true:v.isActive=false);
    //3.赋值到data中
    this.setData({
      tabs
    })
  },

  /* 页面上滑滚动条触底事件 */
  onReachBottom () {
    //判断是否还有下一页
    if (this.QueryParams.pagenum >= this.totalPages) {
      //没有下一页
      wx.showToast({
        title: '我是有底哒!'
      });
    } else {
      //还有下一页
      this.QueryParams.pagenum ++;
      this.getGoodsList();
    }
  },

  /* 页面下拉刷新事件  在页面生命周期函数中 */
  onPullDownRefresh() {
    //1.重置数组
    this.setData({
      goodsList:[]
    })
    //2.重置页码
    this.QueryParams.pagenum = 1;
    //3.重新发送请求
    this.getGoodsList();
  }

})